//
//  HomeTableViewController.swift
//  weibo
//
//  Created by Qing on 2017/4/30.
//  Copyright © 2017年 成哥哥. All rights reserved.
//

import UIKit
import SVProgressHUD

//注册Cell名
fileprivate let StatusesHomeCellId = "StatusesHomeCellId"

class HomeTableViewController: visitorTableViewController {
    
    //实例化
    let status = StatusListViewModel()
    
    //可变数组，用来存放字典转模型的数据
    var dataList = [Statuses]()

    override func viewDidLoad() {
        super.viewDidLoad()

        visitorViews?.setUpInfo(imageName: nil, title: "在这里，有最新的，有你最爱的，快登录吧")
        
        //MARK:- 未登录状态，加载prepareStatusesCell、loadStatuses会出错
//        prepareStatusesCell()
        //重新加载用户主页数据
//        loadStatuses()
        
        
    }

    /// 准备注册Cell
   fileprivate func prepareStatusesCell() {
        //注册可重用Cell
        tableView.register(StatusCellView.self, forCellReuseIdentifier: "StatusesHomeCellId")
    
    
//      预估行高
        tableView.estimatedRowHeight = 400
//      自动行高 - 需要一个自上而下的自动布局控件，指定一个向下的约束
        tableView.rowHeight = 200//UITableViewAutomaticDimension
        
//        取消表格分割线
        tableView.separatorStyle = .none
    }

}

//MARK: - 请求用户主页数据
extension HomeTableViewController {

    /// 请求用户主页数据
    fileprivate func loadStatuses() {
        
        status.loadStatuses { (issucess) in
            
            if !issucess {
                print("请求出错")
                SVProgressHUD.show(withStatus: "请求失败，请更换网络再试")
                let time: TimeInterval = 1.5
                DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + time, execute: {
                    
                    SVProgressHUD.dismiss()
                })
                return
            }
            
//          测试数据是否有请求成功
//            print(self.status.statusList)
//            刷新表格数据
            self.tableView.reloadData()
        }
    }
}

//MARK: - 数据源方法
extension HomeTableViewController {
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return status.statusList.count
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let Cell = tableView.dequeueReusableCell(withIdentifier: "StatusesHomeCellId", for: indexPath) as! StatusCellView
        
        Cell.viewModel = self.status.statusList[indexPath.row]
        
        return Cell
    }
    
//    自适应高度
//    override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
//        
//    }
    
}
